package com.wonders.hisdoctor.station.project.laboratory.service;

import com.wonders.hisdoctor.station.project.laboratory.vo.*;

import java.util.List;

/**
 * @author zhaogongming
 * @date 2021-02-04
 **/
public interface ILaboratoryService {

    /**
     * 获取检验科室列表
     * @param hospitalCode
     * @return
     */
    List<DeptResponseVo> selectDeptList(String hospitalCode);

    /**
     * 联动获取检验项目
     * @param laboratoryRequestVo
     * @return
     */
    List<LaboratoryResponseVo> selectLaboratoryList(LaboratoryRequestVo laboratoryRequestVo);

    /**
     * 提交申请
     * @param laboratorySaveVo
     * @return
     */
    int save(LaboratorySaveRequestVo laboratorySaveVo);

    /**
     * 已申请检验单列表
     * @param laboratoryInfoRequestVo
     * @return
     */
    List<LaboratoryResponseVo> selectLaboratory(LaboratoryInfoRequestVo laboratoryInfoRequestVo);

    /**
     * 历史申请
     * @param laboratoryHistoryRequestVo
     * @return
     */
    List<LaboratoryResponseVo> selectHistoryLaboratory(LaboratoryHistoryRequestVo laboratoryHistoryRequestVo);

    /**
     * 删除申请
     * @param list
     * @return
     */
    Integer cancelLaboratory(List<CancelLaboratoryRequestVo> list);

    /**
     * 打印检验单
     * @param list
     * @return
     */
    List<LaboratoryPrintReponseVo> selectPrintInfo(List<LaboratoryPrintRequestVo> list);

    /**
     * 保存并打印
     * @param laboratorySaveVo
     * @return
     */
    List<LaboratoryPrintReponseVo> saveAndPrint(LaboratorySaveRequestVo laboratorySaveVo);


    /**
     * 新版：提交申请，加组合名称
     * @param laboratorySaveVo
     * @return
     */
    int saveNew(LaboratorySaveRequestVo laboratorySaveVo);

    /**
     * 新版：已申请检验单列表，加组合名称
     * @param laboratoryInfoRequestVo
     * @return
     */
    List<LaboratoryResponseVo> selectLaboratoryNew(LaboratoryInfoRequestVo laboratoryInfoRequestVo);

    /**
     * 新版：保存并打印，加组合名称
     * @param laboratorySaveVo
     * @return
     */
    List<LaboratoryPrintReponseVo> saveAndPrintNew(LaboratorySaveRequestVo laboratorySaveVo);

}
